import Vue from 'vue'
let vm = new Vue();
export default {
	request(options){
		return new Promise((resolve,reject)=>{//把调取的的接口给了一个Promise实例
			uni.request({//uni-app调接口
			...options,//所有的数据通过options传过来
			success:res=>{
				if(options.native){
				//假如用户得到res的原型数据，就在页面第三个参数把native：true就好了
					resolve(res)
				}else if(res.statusCode===401){
					uni.showModal({
						title: '提示',
						content: '未登录或登录已失效，是否进行登录？',
						success: function (res) {
							if (res.confirm) {
								uni.navigateTo({
									url: '/pages/login/login'
								});
							} else if (res.cancel) {
								
							}
						}
					});
				}else if(res.statusCode===200){
				//等于200证明请求接口成功，就把里面的data数据给用户返回，
				//这里只返回data数据，用户想要原型数据，就在页面的第三个参数里写:native：true
					if(res.data.code===0){
						uni.showToast({
							icon: 'none',
							title: res.data.msg
						});
					}else {
						resolve(res.data)
					}
				}else{
				//调取接口错误时返回给程序员
					reject(res)
				}
			}
		})
		})
		
	},
	//get方法
	get(url,data={},options={}){
		options.url=vm.baseUrl+url;
		options.data=data
		options.header={token:this.token(),'Accept-Language': 'zh-CN,zh;q=0.9'}
		options.method="get"
		return this.request(options)
	},
	//post方法
	post(url,data={},options={}){
		options.url=vm.baseUrl+url;
		options.data=data
		options.header={token:this.token(),'Accept-Language': 'zh-CN,zh;q=0.9'}
		options.method="post"
		return this.request(options)
	},
	upload(path,cb){
		uni.uploadFile({
			url: vm.baseUrl+'/api/upload/index',
			filePath: path,
			name: 'file',
			header: {
				token:this.token()
			},
			success: (uploadFileRes) => {
				let result = JSON.parse(uploadFileRes.data);
				let p = ''
				if(result.code==1){
					p=result.data.url;
				}else{
					uni.showToast({
						icon: 'none',
						title: result.msg
					});
				}
				cb(p);
			},
			fail:(res) =>{
				uni.showToast({
					icon: 'none',
					title: '上传失败'
				});
				cb('');
			}
		});
	},
	token(){
		const lifeData = uni.getStorageSync('lifeData');
		if (lifeData) {
			return lifeData.jcs_token;
		} else {
			return "";
		}
	}
}